1 REM********************************* 2 REM*----------LEKTION-7------------* 3 REM*-------------------------------* 4 REM*----(W)-BY-ARNO-FREISINGER-----* 5 REM*-------------------------------* 6 REM*--------TEACHMASTER------------* 7 REM*-------------------------------* 8 REM********************************* 10 POKE 53280 , 11 : POKE 53281 , 11 : PRINT "[155]" : POKE 2050 , 1 15 SYS 42291 : POKE 46 , PEEK (35) : POKE 45 , PEEK (781) + 2 : CLR 20 PRINT"[147]"TAB(15)"TEACHMASTER" 30 PRINT""TAB(09)"(W) BY ARNO FREISINGER" 40 PRINT""TAB(10)" " 50 FOR I = 1 TO 2000 : NEXT 60 PRINT"[147]"TAB(15)"LEKTION 7" 70 FOR I = 1 TO 1000 : NEXT 80 GET A$ : GET A$ : GET A$ 85 REM********************************* 90 REM*-------- SEITE 1 --------------* 95 REM********************************* 100 PRINT"[147]WIR SIND JA JETZT SCHON RICHTIG WEIT." 110 PRINT"DA WIR JA FAST ALLE BEFEHLE DURCH HABEN" 120 PRINT"WOLLEN WIR DAS WISSEN UEBER DIE BEFEHLE" 130 PRINT"IN DIESER LEKTION FAST KOMPLETT MACHEN." 140 PRINT"DA WAERE DER BEFEHL CMP[146]. IHN KANN MAN" 150 PRINT"EINSETZEN WIE DEN BASIC BEFEHL" 160 PRINT"IF..THEN... . DER CMP-BEFEHL VERGLEICHT" 170 PRINT"DEN AKKU-INHALT MIT DEM WERT, DER BEIM" 180 PRINT"CMP-BEFEHL ANGEGEBEN WIRD.ER LAUTET SO :" 190 PRINT"CMP #(WERT) ODER CMP (ADRESSE).JETZT" 210 PRINT""TAB(14)"TASTE DRUECKEN" 220 PRINT""TAB(18)"-1-" 230 GOSUB 250 240 ON A GOTO 295 , 60 247 REM******************************** 248 REM*------- TASTEN ABFRAGE -------* 249 REM******************************** 250 GET A$ : IF A$ = "" THEN 250 260 IF A$ = "Z" THEN A = 2 : RETURN 270 A = 1 : RETURN 280 REM******************************** 285 REM*-------- SEITE 2 -------------* 290 REM******************************** 295 PRINT"[147]EINE TABELLE, DIE DIE REAKTIONEN VER-" 300 PRINT"DEUTLICHEN SOLL:" 310 PRINT"[213][195][195][195][195][195][195]FLAG[192][192][195]REAKTIONEN[195]AUF[195]CMP[195][195][195][195][195][195][201]" 320 PRINT"[194] [194]" 330 PRINT"[194] FLAG [194] DATEN > [194] DATEN = [194] DATEN < [194] 340 [153]"PEEKVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALPEEK" 350 [153]"PEEKN-FLAG PEEK 1 ODER 0PEEK 0 PEEK 1 ODER 0PEEK" 360 [153]"PEEKVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALPEEK" 370 [153]"PEEKZ-FLAG PEEK 0 PEEK 1 PEEK 0 PEEK" 380 [153]"PEEKVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALVALPEEK" 390 [153]"PEEKC-FLAG PEEK 1 PEEK 1 PEEK 0 PEEK" 400 [153]"PEEK PEEK" 410 [153]"MID$LENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLENLEN(null)" 420 [153]"HIER KOENNEN SIE SEHEN, WIE DAS STATUS-" 430 [153]"REGISTER EINGESTELLT IST, WENN SIE MIT" 450 [153]""[163]14)"TASTE DRUECKEN" 460 [153]""[163]18)"-2-" 470 [141] 250 : [145] A [137] 480 , 100 480 [143]******************************** 490 [143]*--------- SEITE 3 ------------* 495 [143]******************************** 500 [153]"LOADCMP VERGLICHEN HABEN. MERKEN SIE ES SICH" 510 [153]"GUT, DA ES SEHR WICHTIG IST. NUN ABER " 520 [153]"WEITER : CPYWAIT UND CPXWAIT SIND DIE VER-" 530 [153]"GLEICHSBEFEHLE FUER DAS X & Y REGISTER." 540 [153]"CPY VERGLEICHT DAS Y-REGISTER," 550 [153]"CPX VERGLEICHT DAS X-REGISTER." 560 [153]"DIE FLAGS REAGIEREN GENAUSO, WIE BEI" 570 [153]"CMP. MAN KANN DANN DIE FLAGS ABFRAGEN" 580 [153]"MIT DEN BEFEHLEN, DIE WIR IN LEKTION 5" 590 [153]"GELERNT HABEN. SIE HEISSEN BCC,BCS,BEQ," 600 [153]""[163]14)"TASTE DRUECKEN" 610 [153]""[163]18)"-3-" 620 [141] 250 : [145] A [137] 640 , 295 630 [143]******************************** 640 [143]*--------- SEITE 4 ------------* 650 [143]******************************** 660 [153]"LOADBMIWAIT UND BNEWAIT. SIE WISSEN HOFFENTLICH" 670 [153]"NOCH DIE BEFEHLE, DER EINZELNEN FLAGS." 680 [153]"JETZT EIN PAAR BEISPIELE :" 690 [153]" LDA #$00 ;AKKU = 0" 700 [153]" CMP $1000 ;VERGLEICHEN MIT SPEICH." 710 [153]" ;$1000 (4096)." 720 [153]" BEQ LOOP ;FALLS=0 DANN NACH LOOP." 730 [153]" RTS ;ZURUECK SPRINGEN." 740 [153]"LOOP LDA #65 ;ASCI-CODE FUER A LADEN" 750 [153]" JMP $FFD2 ;SPRUNG NACH CHROUT" 760 [153]"DIES WAR DAS ERSTE BEISPIEL. ES WIRD EIN" 765 [153]"A AUSGEDRUCKT, WENN SPEICHS.$1000 (4096)" 767 [153]"GLEICH NULL IST. JETZT EIN NEUES" 770 [153]""[163]14)"TASTE DRUECKEN" 780 [153]""[163]18)"-4-" 790 [141] 250 : [145] A [137] 800 , 480 800 [143]******************************** 810 [143]*---------- SEITE 5 -----------* 820 [143]******************************** 830 [153]"LOADBEISPIEL :" 840 [153]" LDX $02 ;IN X-R. WERT VON 2 LADEN." 850 [153]" CPX #$02 ;VERGLEICH MIT ZWEI" 860 [153]" BCS LOOP ;WENN >= DANN NACH LOOP." 870 [153]" LDA $10 ;WERT VON SPEICHERST.$10" 880 [153]" ;(16) IN DEN AKKU LADEN." 890 [153]" JMP $FFD2;SPRUNG NACH CHROUT" 900 [153]"LOOP LDA #66 ;ASC-II-CODE FUER B LADEN" 910 [153]" JSR $FFD2;SPRUNG ZU CHROUT" 920 [153]" RTS ;ZURUECK SPRINGEN." 930 [153]"DAS PROGRAMM DRUCKT EIN B AUS, " 940 [153]""[163]14)"TASTE DRUECKEN" 950 [153]""[163]18)"-5-" 960 [141] 250 : [145] A [137] 990 , 640 970 [143]******************************** 980 [143]*--------- SEITE 6 ------------* 990 [143]******************************** 1000 [153]"LOADWENN DIE SPEICHERSTELLE 2 EINEN " 1010 [153]"GROESSEREN WERT ALS $02 (2) BESITZT." 1030 [153]"WENN NICHT WIRD DER ASCII-CODE VON $10" 1040 [153]"(16) AUSGEDRUCKT ." 1070 [153]"NUN WEITER MIT DEN NEUEN BEFEHLEN :" 1080 [153]"TAXWAIT HEISST DER NAECHSTE. ER UEBERGIBT" 1090 [153]"DEN WERT DES AKKUS INS X-REGISTER, OHNE" 1100 [153]"DASS DER AKKU VERAENDERT WIRD." 1110 [153]""[163]14)"TASTE DRUECKEN" 1120 [153]""[163]18)"-6-" 1130 [141] 250 : [145] A [137] 1150 , 800 1150 [143]******************************* 1160 [143]*--------- SEITE 7 -----------* 1170 [143]******************************* 1180 [153]"LOADTAYWAIT UEBERGIBT DEN WERT DES AKKUS AN" 1190 [153]"DAS Y-REGTSTER. TSXWAIT UEBERGIBT DEN" 1200 [153]"STAPELZEIGER (DAZU GLEICH MEHR) IN DAS" 1210 [153]"X-REGISTER. TXAWAIT IST DIE UMKEHRUNG VON" 1220 [153]"TAX. TXA UEBERGIBT DEN WERT DES X-REG." 1230 [153]"IN DEN AKKU. TXSWAIT IST DAS GEGENTEIL" 1240 [153]"VON TSX. TXS UEBERGIBT DEN X-REG. WERT" 1250 [153]"AN DEN STAPELZEIGER. D.H. DER STAPELZ." 1260 [153]"HAT DEN WERT DES X-REG., OHNE DASS DER" 1270 [153]"WERT DES X-REGISTERS VERAENDERT WIRD." 1280 [153]""[163]14)"TASTE DRUECKEN" 1290 [153]""[163]18)"-7-" 1300 [141] 250 : [145] A [137] 1320 , 980 1310 [143]******************************* 1320 [143]*---------- SEITE 8 ----------* 1330 [143]******************************* 1340 [153]"LOADTYAWAIT IST DAS GEGENTEIL VON TAY. HIER" 1350 [153]"WIRD DER WERT DES Y-REGISTERS IN DEN" 1360 [153]"AKKU UEBERTRAGEN, OHNE DASS DER WERT" 1370 [153]"DES Y-REGISTERS VERAENDERT WIRD." 1380 [153]"DIES WAR JA EINE GANZE MENGE AN NEUEN" 1390 [153]"BEFEHLEN. SIE LASSEN SICH ABER LEICHT" 1400 [153]"EINPRAEGEN, DA SIE KEINERLEI ADRESS-" 1410 [153]"IERUNG BESITZEN. SIE SIND ALLE EIN" 1420 [153]"BYTE LANG. SO HABEN WIR ES DOCH NICHT" 1430 [153]"GESCHAFFT. ES STEHEN NOCH EIN PAAR BE-" 1440 [153]""[163]14)"TASTE DRUECKEN" 1450 [153]""[163]18)"-8-" 1460 [141] 250 : [145] A [137] 1480 , 1150 1470 [143]******************************* 1480 [143]*---------- SEITE 9 ----------* 1490 [143]******************************* 1500 [153]"LOADFEHLE OFFEN, DIE WIR IN DEN WEITEREN" 1510 [153]"LEKTIONEN BEHANDELN WERDEN." 1520 [153]"GEBEN SIE JETZT WIEDER IHR GERAET EIN." 1530 A$ [178] "" : [133]"DWAIT ODER FWAIT"; A$ 1540 [139] A$ [178] "F" [167] F[178]8 : [137] 1600 1545 [139] A$ [178] "Z" [167] 1310 1550 [139] A$ [178] "D" [167] F[178]1 : [137] 1600 1555 [139] A$ [178] "" [167] [128] 1560 [137] 1530 1570 [143]******************************* 1580 [143]*---------- LADE ROUTINE -----* 1590 [143]******************************* 1600 [151] 2,F : [151] 46,8 : [151] 45,3 : [151] 2050 ,0: [147] "LEKTION 8" ,[194](2)